# core/__init__.py
import gettext
import os
import subprocess
from pathlib import Path

# ====================== 国际化配置 ====================== #
# 设置本地化目录（兼容开发模式与打包后路径）
_localedir = Path(__file__).parent.parent / "po"
try:
    # 优先使用系统标准位置（/usr/share/locale）
    _ = gettext.translation(
        "mirror-tool",
        localedir="/usr/share/locale",
        languages=["zh_CN"],
        fallback=True
    ).gettext
except FileNotFoundError:
    # 开发环境回退到项目目录
    _ = gettext.translation(
        "mirror-tool",
        localedir=_localedir,
        languages=["zh_CN"],
        fallback=True
    ).gettext

# 定义翻译函数别名
N_ = gettext.ngettext

# ====================== 版本号管理 ====================== #
def _get_version_from_git() -> str:
    """从 Git 标签自动生成版本号"""
    try:
        version = subprocess.check_output(
            ["git", "describe", "--tags", "--always"],
            stderr=subprocess.DEVNULL
        ).decode().strip()
        # 规范化版本号 (v2.1.0-3-gabc1234 → 2.1.0.dev3+gabc1234)
        if "-" in version:
            parts = version.split("-")
            return f"{parts[0].lstrip('v')}.dev{parts[1]}+{parts[2].lstrip('g')}"
        return version.lstrip("v")
    except Exception:
        return None

# 版本号优先级：Git标签 > 手动定义
__version__ = _get_version_from_git() or "2.1.0.dev0"

# ====================== 初始化验证 ====================== #
if __name__ == "__main__":
    print(f"Mirror Tool Version: {__version__}")
    print(_("初始化完成"))  # 验证翻译加载